home *** CD-ROM | disk | FTP | other *** search
/ HyperLib 1997 Winter - Disc 1 / HYPERLIB-1997-Winter-CD1.ISO.7z / HYPERLIB-1997-Winter-CD1.ISO / オンラインウェア / UTIL / merryxmasWatcher 2.0.sit / merryxmasWatcher 2.0 / cards.xml < prev    next >
Text File  |  1995-02-20  |  59KB  |  357 lines

  1. card_2861.xml
  2. <?xml version="1.0" encoding="utf-8" ?>
  3. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  4. <card>
  5.     <id>2861</id>
  6.     <filler1>0</filler1>
  7.     <cantDelete> <false /> </cantDelete>
  8.     <showPict> <true /> </showPict>
  9.     <dontSearch> <false /> </dontSearch>
  10.     <owner>2660</owner>
  11.     <link rel="stylesheet" type="text/css" href="stylesheet_3213.css" />
  12.     <part>
  13.         <id>1</id>
  14.         <type>field</type>
  15.         <visible> <true /> </visible>
  16.         <dontWrap> <false /> </dontWrap>
  17.         <dontSearch> <false /> </dontSearch>
  18.         <sharedText> <false /> </sharedText>
  19.         <fixedLineHeight> <false /> </fixedLineHeight>
  20.         <autoTab> <false /> </autoTab>
  21.         <lockText> <true /> </lockText>
  22.         <rect>
  23.             <left>202</left>
  24.             <top>0</top>
  25.             <right>512</right>
  26.             <bottom>342</bottom>
  27.         </rect>
  28.         <style>scrolling</style>
  29.         <autoSelect> <false /> </autoSelect>
  30.         <showLines> <false /> </showLines>
  31.         <wideMargins> <false /> </wideMargins>
  32.         <multipleLines> <false /> </multipleLines>
  33.         <reservedFamily> 0 </reservedFamily>
  34.         <titleWidth>0</titleWidth>
  35.         <icon>0</icon>
  36.         <textAlign>left</textAlign>
  37.         <font>Geneva</font>
  38.         <textSize>12</textSize>
  39.         <textStyle>plain</textStyle>
  40.         <textHeight>16</textHeight>
  41.         <name>About</name>
  42.         <script></script>
  43.     </part>
  44.     <part>
  45.         <id>2</id>
  46.         <type>field</type>
  47.         <visible> <false /> </visible>
  48.         <dontWrap> <false /> </dontWrap>
  49.         <dontSearch> <false /> </dontSearch>
  50.         <sharedText> <false /> </sharedText>
  51.         <fixedLineHeight> <false /> </fixedLineHeight>
  52.         <autoTab> <false /> </autoTab>
  53.         <lockText> <true /> </lockText>
  54.         <rect>
  55.             <left>202</left>
  56.             <top>0</top>
  57.             <right>512</right>
  58.             <bottom>342</bottom>
  59.         </rect>
  60.         <style>scrolling</style>
  61.         <autoSelect> <false /> </autoSelect>
  62.         <showLines> <false /> </showLines>
  63.         <wideMargins> <false /> </wideMargins>
  64.         <multipleLines> <false /> </multipleLines>
  65.         <reservedFamily> 0 </reservedFamily>
  66.         <titleWidth>0</titleWidth>
  67.         <icon>0</icon>
  68.         <textAlign>left</textAlign>
  69.         <font>Geneva</font>
  70.         <textSize>12</textSize>
  71.         <textStyle>plain</textStyle>
  72.         <textHeight>16</textHeight>
  73.         <name>Explained</name>
  74.         <script>on openStack --load picture for buttons, show the about fieldloadPictButtonsif there is a cd fld "About" then set the visible of cd fld "About" to trueif there is a cd fld "Explained" then set the visible of cd fld "Explained" to falseif there is a cd fld "Changes" then set the visible of cd fld "Changes" to falseif there is a cd fld "Scan" then set the visible of cd fld "Scan" to falseif there is a cd fld "Install" then set the visible of cd fld "Install" to falseend openStackon loadPictButtons --loads picture buttonsif there is a window "buttons" then exit to HyperCard --picture is already loadedpicture "buttons",resource,rect,falseif there is a window "buttons" then --set rectangle and show itset the left of window "buttons" to the left of this cardset the top of window "buttons" to the top of this cardset the visible of window "buttons" to true --show itelseanswer "Sorry, an error occured while loading the pictures." & ツャreturn & return & "Quit HyperCard and try to increase the memory allocated to HyperCard(Get Info. from the finder)"exit to HyperCardend ifend loadPictButtonson idle --move picture window with card windowif there is a window "buttons" thenset the left of window "buttons" to the left of this cardset the top of window "buttons" to the top of this cardend ifend idleon mouseDownInPicture --clicked on a picture, look for coordinatesif the mouseloc is within "37,33,166,66" then --they clicked on Aboutset the visible of cd fld "Explained" to falseset the visible of cd fld "Changes" to falseset the visible of cd fld "Scan" to falseset the visible of cd fld "Install" to falseset the visible of cd fld "About" to trueif there is a cd fld "About" then set the scroll of cd fld "About" to 0end ifif the mouseloc is within "37,98,166,131" then --they clicked on Explainedset the visible of cd fld "About" to falseset the visible of cd fld "Changes" to falseset the visible of cd fld "Scan" to falseset the visible of cd fld "Install" to falseset the visible of cd fld "Explained" to trueif there is a cd fld "Explained" then set the scroll of cd fld "Explained" to 0end ifif the mouseloc is within "37,161,166,193" then --they clicked on Changesset the visible of cd fld "About" to falseset the visible of cd fld "Explained" to falseset the visible of cd fld "Scan" to falseset the visible of cd fld "Install" to falseset the visible of cd fld "Changes" to trueif there is a cd fld "Changes" then set the scroll of cd fld "Changes" to 0end ifif the mouseloc is within "37,223,166,256" then --they clicked on Scanif the shiftKey is down then --Scan a stacksend "scanStack" to cd fld "Scan" --card field "Scan" contains the scanning scriptend ifset the visible of cd fld "About" to falseset the visible of cd fld "Explained" to falseset the visible of cd fld "Changes" to falseset the visible of cd fld "Install" to falseset the visible of cd fld "Scan" to trueif there is a cd fld "Scan" then set the scroll of cd fld "Scan" to 0end ifif the mouseloc is within "37,284,166,316" then --they clicked on Installif the shiftKey is down then --Install the Watcher Scriptset cursor to watchsend "installWatcher" to cd fld "Changes" --I stored the watcher script in a field to avoid errors in the virus detectionend ifset the visible of cd fld "About" to falseset the visible of cd fld "Explained" to falseset the visible of cd fld "Changes" to falseset the visible of cd fld "Scan" to falseset the visible of cd fld "Install" to trueif there is a cd fld "Install" then set the scroll of cd fld "Install" to 0end ifend mouseDownInPictureon suspendStack --opening a different window in HyperCard, close buttons windowif there is a window "buttons" then close window "buttons"end suspendStackon resumeStack --show the buttons window againsend "openStack" to this stackend resumeStackon closeStack --close the buttons windowif there is a window "buttons" then close window "buttons"end closeStackon install --an error occured and the user wants to install the watcher scriptsend "installWatcher" to cd fld "Changes"end installon scan --an error occured andthe user wants to scan a stacksend "scanStack" to cd fld "Scan"end scan</script>
  75.     </part>
  76.     <part>
  77.         <id>3</id>
  78.         <type>field</type>
  79.         <visible> <false /> </visible>
  80.         <dontWrap> <false /> </dontWrap>
  81.         <dontSearch> <false /> </dontSearch>
  82.         <sharedText> <false /> </sharedText>
  83.         <fixedLineHeight> <false /> </fixedLineHeight>
  84.         <autoTab> <false /> </autoTab>
  85.         <lockText> <true /> </lockText>
  86.         <rect>
  87.             <left>202</left>
  88.             <top>0</top>
  89.             <right>512</right>
  90.             <bottom>342</bottom>
  91.         </rect>
  92.         <style>scrolling</style>
  93.         <autoSelect> <false /> </autoSelect>
  94.         <showLines> <false /> </showLines>
  95.         <wideMargins> <false /> </wideMargins>
  96.         <multipleLines> <false /> </multipleLines>
  97.         <reservedFamily> 0 </reservedFamily>
  98.         <titleWidth>0</titleWidth>
  99.         <icon>0</icon>
  100.         <textAlign>left</textAlign>
  101.         <font>Geneva</font>
  102.         <textSize>12</textSize>
  103.         <textStyle>plain</textStyle>
  104.         <textHeight>16</textHeight>
  105.         <name>Changes</name>
  106.         <script>on installWatcher --INSTALLS WATCHER SCRIPT INTO HOME STACK--CHECK for commit firstglobal statusanswer "Are you ready to install the Watcher 2.0 script?" with "Cancel" or "Proceed"if it is "Cancel" thenanswer "Installation canceled."exit to HyperCardend if--SCAN for the virusput "clean" into statusif the cantModify of stack "Home" is true thenset the cantModify of stack "Home" to falseput "true" into homeStatus --original statuselseput "false" into homeStatus --original statusend ifif the cantModify of stack "Home" is true then --protected stack, stop installation (Thanks Jacque Gay)answer "Error:  Your Home stack is protected against modification - Installation Canceled!" & return & return & ツャ"It is either locked or protected within HyperCard.  See the Install Directions for more information."exit to HyperCardend ifput "clean" into statusput the script of stack "Home" into homeScriptput "--merryxmas,merryxmas,--merry2xmas,merry2xmas" into flagsrepeat with x = 1 to (the number of lines in homeScript) --look for virus in Home scriptset cursor to busyrepeat with i = 1 to (the number of items in flags)if line x of homeScript contains (item i of flags) thenput "infected" into status--Check for the three lines of the innoculation(s) - Thanks to Bill Swagerty--each check is for slight differences in spacing for possible innoculations scriptsif homeScript contains ("-" & "-on openbackground -" & "-merryxmas") and ツャhomeScript contains ("-" & "-on closebackground -" & "-merryxmas") and ツャhomeScript contains ("-" & "-on idle -" & "-merryxmas") then put "innoculated" into statusif homeScript contains ("-" & "- on openbackground -" & "-merryxmas") and ツャhomeScript contains ("-" & "- on closebackground -" & "-merryxmas") and ツャhomeScript contains ("-" & "- on idle-" & " -merryxmas") then put "innoculated" into status--CHECK FOR MERRY2XMAS INFECTION WITH OLD MERRYXMAS INNOCULATIONif status = "innoculated" then --reset virusStatus;  will be innoculated if merry2xmas inoc present.if (scriptToScan contains "merry2xmas") or (scriptToScan contains "-"&"-merry2xmas") then --may be infectedput "infected" into status --reset it as infected unless changed to innoculated belowif scriptToScan contains ("-" & "-on openbackground -" & "-merry2xmas") and ツャscriptToScan contains ("-" & "-on closebackground -" & "-merry2xmas") and ツャscriptToScan contains ("-" & "-on idle -" & "-merry2xmas") then put "innoculated" into statusif scriptToScan contains ("-" & "- on openbackground -" & "-merry2xmas") and ツャscriptToScan contains ("-" & "- on closebackground -" & "-merry2xmas") and ツャscriptToScan contains ("-" & "- on idle -" & "-merry2xmas") then put "innoculated" into statusend ifend ifdelete line x to (the number of lines in homeScript) of homeScriptexit repeatend ifend repeatif status = "infected" then exit repeat --infection noted, cleaned up, install the watcher nowend repeat--INSTALL watcher scriptput return & return & (the script of card field "Install") after homeScript --homeScript should be clean now.set the script of stack "Home" to homeScriptset the cantModify of stack "Home" to homeStatus--RESET THE SCRIPT OF THIS STACKset the script of this stack to the script of cd fld "Explained" --contains template for script--INFORM user that everything is doneplay "boing"if status = "innoculated" thenanswer "Your Home stack appears to have been innoculated.  Your " & ツャ"Home stack has the new watcher script and innoculation installed." & ツャreturn & return & "If any questionable scripts are found in the future, you'll be notified."end ifif status = "infected" thenanswer "A possible infection was found and deleted.  Your " & ツャ"Home stack is now innoculated and watching :)"end ifif status = "clean" thenanswer "Your stack appeared to be clean (not infected)!  Your " & ツャ"Home stack is now innoculated and watching :)"end ifend installWatcher</script>
  107.     </part>
  108.     <part>
  109.         <id>4</id>
  110.         <type>field</type>
  111.         <visible> <false /> </visible>
  112.         <dontWrap> <false /> </dontWrap>
  113.         <dontSearch> <false /> </dontSearch>
  114.         <sharedText> <false /> </sharedText>
  115.         <fixedLineHeight> <false /> </fixedLineHeight>
  116.         <autoTab> <false /> </autoTab>
  117.         <lockText> <true /> </lockText>
  118.         <rect>
  119.             <left>202</left>
  120.             <top>0</top>
  121.             <right>512</right>
  122.             <bottom>342</bottom>
  123.         </rect>
  124.         <style>scrolling</style>
  125.         <autoSelect> <false /> </autoSelect>
  126.         <showLines> <false /> </showLines>
  127.         <wideMargins> <false /> </wideMargins>
  128.         <multipleLines> <false /> </multipleLines>
  129.         <reservedFamily> 0 </reservedFamily>
  130.         <titleWidth>0</titleWidth>
  131.         <icon>0</icon>
  132.         <textAlign>left</textAlign>
  133.         <font>Geneva</font>
  134.         <textSize>12</textSize>
  135.         <textStyle>plain</textStyle>
  136.         <textHeight>16</textHeight>
  137.         <name>Scan</name>
  138.         <script>--PLEASE DIRECT QUESTIONS TO KEN DUNHAM AT--KDUNHAM@EDNET1.OSL.OR.GOV, KDUNHAM@EOSC.OSSHE.EDU, OR WRITE TO 607 "G", LA GRANDE, OR 97850on scanStack --scans stacksglobal stackToScan, flags, stackNameanswer file "Please open the stack that you'd like to scan." of type STAKif it is empty or (the result is "Cancel") thenanswer "Scaning has been canceled."exit to HyperCardend ifput it into stackToScan --remember the name of the stack in variable stackScript--get the name of the stack clicked on (short name)repeat with x = 1 to (the number of chars in stackToScan)if char x of stackToScan = ":" then --end of stack nameput char (x+1) to (the number of chars in stackToScan) of stackToScan into stackNameend ifend repeatput the script of stack stackToScan into checkForStackScriptif checkForStackScript is empty thenanswer "The stack," && stackName & " has no script and is not infected."exit to HyperCardend ifput "--merryxmas,merryxmas,--merry2xmas,merry2xmas" into flagsput "clean" into virusStatusrepeat with x = 1 to (the number of items in flags)set cursor to busyif the script of stack stackToScan contains item x of flags then put "infected" into virusStatusend repeatif virusStatus = "infected" then --it contains the virus or innoculation script(s)--CHECK FOR INNOCULATION SCRIPTSunlockStack --activates handler belowput the script of stack stackToScan into scriptToScan--Check for the three lines of the innoculation(s) - Thanks to Bill Swagertyif scriptToScan contains ("-" & "-on openbackground -" & "-merryxmas") and ツャscriptToScan contains ("-" & "-on closebackground -" & "-merryxmas") and ツャscriptToScan contains ("-" & "-on idle -" & "-merryxmas") then put "innoculated" into virusStatusif scriptToScan contains ("-" & "- on openbackground -" & "-merryxmas") and ツャscriptToScan contains ("-" & "- on closebackground -" & "-merryxmas") and ツャscriptToScan contains ("-" & "- on idle -" & "-merryxmas") then put "innoculated" into virusStatus--CHECK FOR MERRY2XMAS INFECTION WITH OLD MERRYXMAS INNOCULATIONif virusStatus = "innoculated" then --reset virusStatus;  will be innoculated if merry2xmas inoc present.if (scriptToScan contains "merry2xmas") or (scriptToScan contains "-"&"-merry2xmas") then --may be infectedput "infected" into virusStatus --reset it as infected unless changed to innoculated belowif scriptToScan contains ("-" & "-on openbackground -" & "-merry2xmas") and ツャscriptToScan contains ("-" & "-on closebackground -" & "-merry2xmas") and ツャscriptToScan contains ("-" & "-on idle -" & "-merry2xmas") then put "innoculated" into virusStatusif scriptToScan contains ("-" & "- on openbackground -" & "-merry2xmas") and ツャscriptToScan contains ("-" & "- on closebackground -" & "-merry2xmas") and ツャscriptToScan contains ("-" & "- on idle -" & "-merry2xmas") then put "innoculated" into virusStatusend ifend if-- 窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「 Innoculation Script 窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「 --if virusStatus = "innoculated" then --probably innoculatedif the cantModify of stack stackToScan is true then --locked stack, stop scananswer "Your probably OK!  Your stack appears to contain an innoculation.  " & ツャ"Check the script if you are unsure about the innoculation." with "Check..." or "OK"if it is "OK" then exit to HyperCardelse --they want to check the locked stack anyway, with an innoculation (hopefully)answer "Your disk or stack is locked, so you won't be able to make any changes."checkStackend ifend ifanswer "Your probably OK!  Your stack appears to contain an innoculation." & ツャreturn & return & "Check the script if you are unsure about the innoculation." with "Check..." or "OK"if it is "OK" then exit to HyperCardif it is "Check..." then checkStackend if-- 窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「 Infection Script 窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「 --if virusStatus = "infected" then --probably an infection--deal with a locked stack, inform of possible virusif the cantModify of stack stackToScan is true then --locked stack, stop scananswer "Your stack may contain the virus.  However, it is locked and may not be changed." & ツャreturn & return & "Please read about unlocking stacks and disks in the Install directions, unlock your stack or disk, and scan it again."exit to HyperCardend if--Take care of virusdeleteOptions --custom handlerend ifelse --they have a clean stackanswer "Your stack appears to be clean!" with "Great"end ifend scanStackon  unlockStack --CHECK OF LOCKED PROBLEMS FIRSTglobal stackToScan, stackStatusif the cantModify of stack stackToScan is true thenset the cantModify of stack stackToScan to falseput "true" into stackStatus --original statuselseput "false" into stackStatus --original statusend ifend unlockStackon deleteOptionsglobal stackToScan, flags, stackName, stackStatusanswer "The stack" && stackName & " may contain the merryxmas virus.  " & ツャreturn & return & "Do you want to delete the virus, " & ツャ"check for the virus yourself, or cancel this message?" with ツャ"Cancel" or "Check..." or "Delete"if it is "Cancel" thenanswer "I strongly suggest you check the stack script of your stack for the merryxmas virus!"end ifif it is "Check..." thencheckStackend ifif it is "Delete" thenglobal newStackScriptanswer "Warning - Work on a backup copy if possible - necessary stack script may be deleted." & ツャreturn & return & "Do you want to delete the entire stack script or just from the first line of the virus down?" with "Cancel" or "All" or "Virus Down"if it is "Cancel" thenanswer "I strongly suggest you check the stack script of your stack for the merryxmas virus!"end ifif it is "All" then --delete the entire stack scriptput the script of stack stackToScan into stackScriptset the script of stack stackToScan to emptyanswer "I'll open the stack editor to let you see if " & ツャ"everything is OK." & ツャ"  After closing the script editor you can get back the scripts " & ツャ"by clicking on REVERT!, if there was a problem with the deletion."edit the script of stack stackToScananswer "Is everthing OK?" with "REVERT!" or "Thanks"if it is "REVERT!" thenset the script of stack stackToScan to stackScriptanswer "I strongly suggest you check the " & ツャ"stack script of your stack for the merryxmas virus!"end ifif it is "Thanks" then answer "You're Welcome, all done " & ツャ" - Ken Dunham :)" & ツャreturn & return & "For more information write to:" & return & ツャ"KDUNHAM@EDNET1.OSL.OR.GOV, KDUNHAM@EOSC.OSSHE.EDU" & return & return & ツャ"607 G, La Grande, Oregon, 97850."end ifif it is "Virus Down" then --delete from the virus line downwardsput the script of stack stackToScan into stackScriptrepeat with x = 1 to (the number of lines in stackScript) --scan script line by linerepeat with f = 1 to (the number of items in flags)set cursor to busyif line x of stackScript contains item f of flags then --it contains the virusput the script of stack stackToScan into newStackScriptdelete line x to (the number of lines in stackScript) of newStackScriptput "done" into killStatusexit repeatend ifend repeatif killStatus = "done" then exit repeatend repeatif newStackScript is empty thenset the script of stack stackToScan to emptyelse set the script of stack stackToScan to newStackScriptanswer "I'll open the stack editor to let you see if " & ツャ"everything is OK." & ツャ"  After closing the script editor you can get back the scripts " & ツャ"by clicking on REVERT!, if there was a problem with the deletion."edit the script of stack stackToScananswer "Is everthing OK?" with "REVERT!" or "Thanks"if it is "REVERT!" thenset the script of stack stackToScan to stackScriptanswer "I strongly suggest you check the " & ツャ"stack script of the stack" && stackName & " for the merryxmas virus!"end ifif it is "Thanks" then answer "You're Welcome, all done " & ツャ" - Ken Dunham :)" & ツャreturn & return & "For more information write to:" & return & ツャ"KDUNHAM@EDNET1.OSL.OR.GOV, KDUNHAM@EOSC.OSSHE.EDU" & return & return & ツャ"607 G, La Grande, Oregon, 97850."end ifend ifset the cantModify of stack stackToScan to stackStatus --reset stack to original settings if not lockedend deleteOptionson checkStack --enables user to check stack manuallyglobal stackToScan, stackStatusanswer "Use the scroll bar to look for:" & return & return & ツャ"on openbackground --merryxmas(or merry2xmas)" & return & return & ツャ"If you find something close to 36 lines " & ツャ"following this handler you need to delete it all!" with "More..." or "OK"if it is "More..." thenanswer "The innoculation script looks similiar to " & ツャ"the virus but only has 3-6 lines of script(See Scan for more info.)" & ツャ"  If you only have the innoculation script you are NOT infected!"end ifedit the script of stack stackToScanset the cantModify of stack stackToScan to stackStatus --reset stack to original settings if not lockedexit to HyperCardend checkStack</script>
  139.     </part>
  140.     <part>
  141.         <id>5</id>
  142.         <type>field</type>
  143.         <visible> <false /> </visible>
  144.         <dontWrap> <false /> </dontWrap>
  145.         <dontSearch> <false /> </dontSearch>
  146.         <sharedText> <false /> </sharedText>
  147.         <fixedLineHeight> <false /> </fixedLineHeight>
  148.         <autoTab> <false /> </autoTab>
  149.         <lockText> <true /> </lockText>
  150.         <rect>
  151.             <left>202</left>
  152.             <top>0</top>
  153.             <right>512</right>
  154.             <bottom>342</bottom>
  155.         </rect>
  156.         <style>scrolling</style>
  157.         <autoSelect> <false /> </autoSelect>
  158.         <showLines> <false /> </showLines>
  159.         <wideMargins> <false /> </wideMargins>
  160.         <multipleLines> <false /> </multipleLines>
  161.         <reservedFamily> 0 </reservedFamily>
  162.         <titleWidth>0</titleWidth>
  163.         <icon>0</icon>
  164.         <textAlign>left</textAlign>
  165.         <font>Geneva</font>
  166.         <textSize>12</textSize>
  167.         <textStyle>plain</textStyle>
  168.         <textHeight>16</textHeight>
  169.         <name>Install</name>
  170.         <script>--merryxmas watcher 2.0 script:--DO NOT PROGRAM ANY SCRIPT FOLLOWING THIS POINT.  DOING SO--MAY RESULT IN MUTATIONS OF THE MERRYXMAS VIRUS.  THE SCRIPT--BELOW IS AN INNOCULATION AND VIRUS CHECKER FOR THE MERRYXMAS--AND MERRY2XMAS VIRUSES.  PLEASE DIRECT QUESTIONS TO KEN DUNHAM AT--KDUNHAM@EDNET1.OSL.OR.GOV, KDUNHAM@EOSC.OSSHE.EDU, OR WRITE TO 607 "G", LA GRANDE, OR 97850on closeStack userStack--checks for merryxmas virus on closeStack--BYPASS HOME TO SPEED THINGS UPif (there is a menu "Home") or ツャ --pass up home stack, innoculated(the short name of this stack = "Home") thenpass closeStackexit to HyperCardend if--CHECK FOR VIRUSput "--merryxmas,merryxmas,--merry2xmas,merry2xmas" into flagsput "clean" into virusStatusrepeat with x = 1 to (the number of items in flags)set cursor to busyif the script of this stack contains item x of flags then put "infected" into virusStatusend repeatif virusStatus = "infected" then --it contains the virus or innoculation script(s)--CHECK FOR INNOCULATION SCRIPTSunlockStack --activates handler belowput the script of this stack into scriptToScan--Check for the three lines of the innoculation(s) - Thanks to Bill Swagertyif scriptToScan contains ("-" & "-on openbackground -" & "-merryxmas") and ツャscriptToScan contains ("-" & "-on closebackground -" & "-merryxmas") and ツャscriptToScan contains ("-" & "-on idle -" & "-merryxmas") then put "innoculated" into virusStatusif scriptToScan contains ("-" & "- on openbackground -" & "-merryxmas") and ツャscriptToScan contains ("-" & "- on closebackground -" & "-merryxmas") and ツャscriptToScan contains ("-" & "- on idle -" & "-merryxmas") then put "innoculated" into virusStatus--CHECK FOR MERRY2XMAS INFECTION WITH OLD MERRYXMAS INNOCULATIONif virusStatus = "innoculated" then --reset virusStatus;  will be innoculated if merry2xmas inoc present.if (scriptToScan contains "merry2xmas") or (scriptToScan contains "-"&"-merry2xmas") then --may be infectedput "infected" into virusStatus --reset it as infected unless changed to innoculated belowif scriptToScan contains ("-" & "-on openbackground -" & "-merry2xmas") and ツャscriptToScan contains ("-" & "-on closebackground -" & "-merry2xmas") and ツャscriptToScan contains ("-" & "-on idle -" & "-merry2xmas") then put "innoculated" into virusStatusif scriptToScan contains ("-" & "- on openbackground -" & "-merry2xmas") and ツャscriptToScan contains ("-" & "- on closebackground -" & "-merry2xmas") and ツャscriptToScan contains ("-" & "- on idle -" & "-merry2xmas") then put "innoculated" into virusStatusend ifend if-- 窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「 Innoculation Script 窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「 --if virusStatus = "innoculated" then --probably innoculated--Locked stack, inform user and give them the option to check it manually anywayif the cantModify of this stack is true then --locked stack, stop scananswer "Your probably OK!  Your stack appears to contain an innoculation.  " & ツャ"Check the script if you are unsure about the innoculation." with "Check..." or "OK"if it is "OK" then exit to HyperCardelse --they want to check the locked stack anyway, with an innoculation (hopefully)answer "Your disk or stack is locked, so you won't be able to make any changes."checkStackend ifend ifanswer "Your probably OK!  Your stack appears to contain an innoculation." & ツャreturn & return & "Check the script if you are unsure about the innoculation." with "Check..." or "OK"if it is "OK" then exit to HyperCardif it is "Check..." then checkStackend if-- 窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「 Infection Script 窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「窶「 --if virusStatus = "infected" then --probably infected--deal with a locked stack, inform of possible virusif the cantModify of this stack is true then --locked stack, stop scananswer "Your stack may contain the virus.  However, it is locked and may not be changed." & ツャreturn & return & "Please read about unlocking stacks and disks in the Install directions, unlock your stack or disk, and scan it again."exit to HyperCardend if--Take care of virusdeleteOptions --custom handlerend ifend if--COMPACT STACK IF FREESIZE IS LARGEset numberformat to 0.0put (the freesize of this stack) into bytesif (bytes/1000) 竕・ 100 then --more than 100 K, good idea to compactanswer "This stack may need compacting.  " & ツャ"If you don't compact your stacks often, they may get corrupted!" & return & return & ツャ"Compact this stack to save" && (bytes/1000) && "K ?" ツャwith "Not Now" or "Compact"if it is "Compact" then doMenu "Compact Stack"end ifend closeStackon  unlockStack --CHECK OF LOCKED PROBLEMS FIRSTglobal stackStatusif the cantModify of this stack is true thenset the cantModify of this stack to falseput "true" into stackStatus --original statuselseput "false" into stackStatus --original statusend ifend unlockStackon deleteOptionsglobal flags, stackStatusanswer "The stack" && (the name of this stack) & " may contain the merryxmas virus.  " & ツャreturn & return & "Do you want to delete the virus, " & ツャ"check for the virus yourself, or cancel this message?" with ツャ"Cancel" or "Check..." or "Delete"if it is "Cancel" thenanswer "I strongly suggest you check the stack script of your stack for the merryxmas virus!"end ifif it is "Check..." thencheckStackend ifif it is "Delete" thenglobal newStackScriptanswer "Warning - Work on a backup copy if possible - necessary stack script may be deleted." & ツャreturn & return & "Do you want to delete the entire stack script or just from the first line of the virus down?" with "Cancel" or "All" or "Virus Down"if it is "Cancel" thenanswer "I strongly suggest you check the stack script of your stack for the merryxmas virus!"end ifif it is "All" then --delete the entire stack scriptput the script of this stack into stackScriptset the script of this stack to emptyanswer "I'll open the stack editor to let you see if " & ツャ"everything is OK." & ツャ"  After closing the script editor you can get back the scripts " & ツャ"by clicking on REVERT!, if there was a problem with the deletion."edit the script of this stackanswer "Is everthing OK?" with "REVERT!" or "Thanks"if it is "REVERT!" thenset the script of this stack to stackScriptanswer "I strongly suggest you check the " & ツャ"stack script of your stack for the merryxmas virus!"end ifif it is "Thanks" then answer "You're Welcome, all done " & ツャ" - Ken Dunham :)" & ツャreturn & return & "For more information write to:" & return & ツャ"KDUNHAM@EDNET1.OSL.OR.GOV, KDUNHAM@EOSC.OSSHE.EDU" & return & return & ツャ"607 G, La Grande, Oregon, 97850."end ifif it is "Virus Down" then --delete from the virus line downwardsput the script of this stack into stackScriptrepeat with x = 1 to (the number of lines in stackScript) --scan script line by linerepeat with f = 1 to (the number of items in flags)set cursor to busyif line x of stackScript contains item f of flags then --it contains the virusput the script of this stack into newStackScriptdelete line x to (the number of lines in stackScript) of newStackScriptput "done" into killStatusexit repeatend ifend repeatif killStatus = "done" then exit repeatend repeatif newStackScript is empty thenset the script of this stack to emptyelse set the script of this stack to newStackScriptanswer "I'll open the stack editor to let you see if " & ツャ"everything is OK." & ツャ"  After closing the script editor you can get back the scripts " & ツャ"by clicking on REVERT!, if there was a problem with the deletion."edit the script of this stackanswer "Is everthing OK?" with "REVERT!" or "Thanks"if it is "REVERT!" thenset the script of this stack to stackScriptanswer "I strongly suggest you check the " & ツャ"stack script of your stack for the merryxmas virus!"end ifif it is "Thanks" then answer "You're Welcome, all done " & ツャ" - Ken Dunham :)" & ツャreturn & return & "For more information write to:" & return & ツャ"KDUNHAM@EDNET1.OSL.OR.GOV, KDUNHAM@EOSC.OSSHE.EDU" & return & return & ツャ"607 G, La Grande, Oregon, 97850."end ifend ifset the cantModify of this stack to stackStatus --reset stack to original settings if not lockedend deleteOptionson checkStack --enables user to check stack manuallyglobal stackStatusanswer "Use the scroll bar to look for:" & return & return & ツャ"on openbackground --merryxmas(or merry2xmas)" & return & return & ツャ"If you find something close to 36 lines " & ツャ"following this handler you need to delete it all!" with "More..." or "OK"if it is "More..." thenanswer "The innoculation script looks similiar to " & ツャ"the virus but only has 3-6 lines of script(See Scan for more info.)" & ツャ"  If you only have the innoculation script you are NOT infected!"end ifedit the script of this stackset the cantModify of this stack to stackStatus --reset stack to original settings if not lockedexit to HyperCardend checkStack--INNOCULATION SCRIPT:--on openbackground --merryxmas--on closebackground --merryxmas--on idle --merryxmas--on openbackground --merry2xmas--on closebackground --merry2xmas--on idle --merry2xmas</script>
  171.     </part>
  172.     <part>
  173.         <id>7</id>
  174.         <type>button</type>
  175.         <visible> <true /> </visible>
  176.         <reserved5> 0 </reserved5>
  177.         <reserved4> 0 </reserved4>
  178.         <reserved3> 0 </reserved3>
  179.         <reserved2> 0 </reserved2>
  180.         <reserved1> 0 </reserved1>
  181.         <enabled> <true /> </enabled>
  182.         <rect>
  183.             <left>37</left>
  184.             <top>33</top>
  185.             <right>166</right>
  186.             <bottom>66</bottom>
  187.         </rect>
  188.         <style>shadow</style>
  189.         <showName> <true /> </showName>
  190.         <highlight> <false /> </highlight>
  191.         <autoHighlight> <false /> </autoHighlight>
  192.         <sharedHighlight> <true /> </sharedHighlight>
  193.         <family>0</family>
  194.         <titleWidth>0</titleWidth>
  195.         <icon>0</icon>
  196.         <textAlign>center</textAlign>
  197.         <font>Chicago</font>
  198.         <textSize>12</textSize>
  199.         <textStyle>plain</textStyle>
  200.         <name>About</name>
  201.         <script>on mouseUpset the visible of cd fld "Explained" to falseset the visible of cd fld "Changes" to falseset the visible of cd fld "Scan" to falseset the visible of cd fld "Install" to falseset the visible of cd fld "About" to trueend mouseUp</script>
  202.     </part>
  203.     <part>
  204.         <id>8</id>
  205.         <type>button</type>
  206.         <visible> <true /> </visible>
  207.         <reserved5> 0 </reserved5>
  208.         <reserved4> 0 </reserved4>
  209.         <reserved3> 0 </reserved3>
  210.         <reserved2> 0 </reserved2>
  211.         <reserved1> 0 </reserved1>
  212.         <enabled> <true /> </enabled>
  213.         <rect>
  214.             <left>37</left>
  215.             <top>98</top>
  216.             <right>166</right>
  217.             <bottom>131</bottom>
  218.         </rect>
  219.         <style>shadow</style>
  220.         <showName> <true /> </showName>
  221.         <highlight> <false /> </highlight>
  222.         <autoHighlight> <false /> </autoHighlight>
  223.         <sharedHighlight> <true /> </sharedHighlight>
  224.         <family>0</family>
  225.         <titleWidth>0</titleWidth>
  226.         <icon>0</icon>
  227.         <textAlign>center</textAlign>
  228.         <font>Chicago</font>
  229.         <textSize>12</textSize>
  230.         <textStyle>plain</textStyle>
  231.         <name>Explained</name>
  232.         <script>on mouseUpset the visible of cd fld "About" to falseset the visible of cd fld "Changes" to falseset the visible of cd fld "Scan" to falseset the visible of cd fld "Install" to falseset the visible of cd fld "Explained" to trueend mouseUp</script>
  233.     </part>
  234.     <part>
  235.         <id>9</id>
  236.         <type>button</type>
  237.         <visible> <true /> </visible>
  238.         <reserved5> 0 </reserved5>
  239.         <reserved4> 0 </reserved4>
  240.         <reserved3> 0 </reserved3>
  241.         <reserved2> 0 </reserved2>
  242.         <reserved1> 0 </reserved1>
  243.         <enabled> <true /> </enabled>
  244.         <rect>
  245.             <left>37</left>
  246.             <top>161</top>
  247.             <right>166</right>
  248.             <bottom>193</bottom>
  249.         </rect>
  250.         <style>shadow</style>
  251.         <showName> <true /> </showName>
  252.         <highlight> <false /> </highlight>
  253.         <autoHighlight> <false /> </autoHighlight>
  254.         <sharedHighlight> <true /> </sharedHighlight>
  255.         <family>0</family>
  256.         <titleWidth>0</titleWidth>
  257.         <icon>0</icon>
  258.         <textAlign>center</textAlign>
  259.         <font>Chicago</font>
  260.         <textSize>12</textSize>
  261.         <textStyle>plain</textStyle>
  262.         <name>V 2.0 Changes</name>
  263.         <script>on mouseUpset the visible of cd fld "About" to falseset the visible of cd fld "Explained" to falseset the visible of cd fld "Scan" to falseset the visible of cd fld "Install" to falseset the visible of cd fld "Changes" to trueend mouseUp</script>
  264.     </part>
  265.     <part>
  266.         <id>10</id>
  267.         <type>button</type>
  268.         <visible> <true /> </visible>
  269.         <reserved5> 0 </reserved5>
  270.         <reserved4> 0 </reserved4>
  271.         <reserved3> 0 </reserved3>
  272.         <reserved2> 0 </reserved2>
  273.         <reserved1> 0 </reserved1>
  274.         <enabled> <true /> </enabled>
  275.         <rect>
  276.             <left>37</left>
  277.             <top>223</top>
  278.             <right>166</right>
  279.             <bottom>256</bottom>
  280.         </rect>
  281.         <style>shadow</style>
  282.         <showName> <true /> </showName>
  283.         <highlight> <false /> </highlight>
  284.         <autoHighlight> <false /> </autoHighlight>
  285.         <sharedHighlight> <true /> </sharedHighlight>
  286.         <family>0</family>
  287.         <titleWidth>0</titleWidth>
  288.         <icon>0</icon>
  289.         <textAlign>center</textAlign>
  290.         <font>Chicago</font>
  291.         <textSize>12</textSize>
  292.         <textStyle>plain</textStyle>
  293.         <name>Scan Stack</name>
  294.         <script>on mouseUpif the shiftKey is down then --Scan a stacksend "scanStack" to cd fld "Scan" --card field "Scan" contains the scanning scriptend ifset the visible of cd fld "About" to falseset the visible of cd fld "Explained" to falseset the visible of cd fld "Changes" to falseset the visible of cd fld "Install" to falseset the visible of cd fld "Scan" to trueend mouseUp</script>
  295.     </part>
  296.     <part>
  297.         <id>11</id>
  298.         <type>button</type>
  299.         <visible> <true /> </visible>
  300.         <reserved5> 0 </reserved5>
  301.         <reserved4> 0 </reserved4>
  302.         <reserved3> 0 </reserved3>
  303.         <reserved2> 0 </reserved2>
  304.         <reserved1> 0 </reserved1>
  305.         <enabled> <true /> </enabled>
  306.         <rect>
  307.             <left>37</left>
  308.             <top>284</top>
  309.             <right>166</right>
  310.             <bottom>316</bottom>
  311.         </rect>
  312.         <style>shadow</style>
  313.         <showName> <true /> </showName>
  314.         <highlight> <false /> </highlight>
  315.         <autoHighlight> <false /> </autoHighlight>
  316.         <sharedHighlight> <true /> </sharedHighlight>
  317.         <family>0</family>
  318.         <titleWidth>0</titleWidth>
  319.         <icon>0</icon>
  320.         <textAlign>center</textAlign>
  321.         <font>Chicago</font>
  322.         <textSize>12</textSize>
  323.         <textStyle>plain</textStyle>
  324.         <name>Install</name>
  325.         <script>on mouseUpif the shiftKey is down then --Install the Watcher Scriptsend "installWatcher" to cd fld "Changes" --activates installationend ifset the visible of cd fld "About" to falseset the visible of cd fld "Explained" to falseset the visible of cd fld "Changes" to falseset the visible of cd fld "Scan" to falseset the visible of cd fld "Install" to trueend mouseUp</script>
  326.     </part>
  327.     <content>
  328.         <layer>card</layer>
  329.         <id>1</id>
  330.         <text><span class="style1">   </span><span class="style3">About merryxmasWatcher 2.0</span><span class="style1">This stack is </span><span class="style2">freeware</span><span class="style1">.  Use at your own risk - although I hope there is none!  So far, everyone that has written to me has really enjoyed this product.  ----------------------------------------            </span><span class="style2">This Stack is Dedicated To                 Barabara Dunham</span><span class="style1">        My wife has been a great source of     encouragement and support as I work late into the night programming.  Thanks for being  such a caring, loving, and understanding wife!----------------------------------------</span><span class="style2">Special Thanks To</span><span class="style1">:Bill SwagertyJacque GayColleen DickSharon PorterDiane </span><span class="style5">Schwartz</span><span class="style1">Lee GummermanI would especially like to recognize </span><span class="style2">Jacque Gay</span><span class="style1"> and </span><span class="style2">Bill Swagerty</span><span class="style1"> for their technical reviews of this stack prior to its release. Please send any bugs, errors, or comments to:</span><span class="style2">Ken Dunham607 "G" AvenueLa Grande, Oregon 97850kdunham@ednet1.osl.or.govkdunham@eosc.osshe.edu</span><span class="style1">Don't hesitate to write to my e-mail address if you need help killing off the virus!  Click on "</span><span class="style2">Scan Stack</span><span class="style1">" or "</span><span class="style2">Install</span><span class="style1">" to read about how to scan or install the watcher script.</span></text>
  331.     </content>
  332.     <content>
  333.         <layer>card</layer>
  334.         <id>2</id>
  335.         <text><span class="style1">    </span><span class="style3">merryxmas Virus Explained</span><span class="style1"></span><span class="style2">History</span><span class="style1">I discovered the infamous merryxmas virus for the first time in April of 1993, following a career day at my school.  I called Claris (owner of HyperCard at the time), SAM, and others.  At that time, no one had heard of the virus.  Sharon Porter, a Library Media Specialist in my district, had seen the script several months earlier but hadn't experienced any problems with the virus and didn't know it was a virus at the time.Bill Swagerty and Colleen Dick worked with me to develop stacks to fight off the virus.  Bill developed the stack "merryxmas Vaccine", which scans and disinfects all the stacks on any drive. Colleen developed the stack "Scrooge", which disinfects and installs an innoculation script, one stack at a time.I recently created the merryxmasWatcher 1.0 and 2.0 stacks to innoculate your Home card against infection and watch for infections in other stacks.  </span><span class="style2">The benefit of using my watcher script is that</span><span class="style1"> </span><span class="style2">you can freely use stacks from other machines and will be notified if they contain the virus</span><span class="style1">.  You don't have to spend time pre-scanning the stacks before using them.  However, it is still a good idea to </span><span class="style2">scan your hard drive for the virus every now and then</span><span class="style1"> with stacks like merryxmas Vaccine.</span><span class="style2">merryxmas viruses</span><span class="style1"> The name "merryxmas" was given to the virus since the word appears in the beginning handlers of the virus script.  The virus always attaches itself to the end of stack scripts and the Home script.  It has over 30 lines in its entire script! The merryxmas virus is very quiet about its presence and spreads easily through the computers of novice and intermediate Hypercard users.  It only infects HyperCard stacks on the Macintosh and may result in bombs, unexpected errors, and the insertion of unwanted script in stack editors.Recently, a new version of the virus, merry2xmas has been developed and is spreading to computers as the original merryxmas virus has over the last few years*Thanks to Bill Swagerty for his update.</span><span class="style2">Checking for the Virus</span><span class="style1">There are two easy ways to find the virus manually.  However, you can also just click on "</span><span class="style2">Scan Stack</span><span class="style1">" to the left.1.  Type:  </span><span class="style2">ss "xmas"</span><span class="style1"> into the message box (</span><span class="style2">command-M</span><span class="style1">) and press return while in your Home stack.  This search the scripts of your Home stack to see if the word "xmas" is found.  If so, the script editor will be opened that contains the word "xmas".  Type </span><span class="style2">command-G</span><span class="style1"> to find and hilite each occurence of "xmas" in the script.2.  Select "</span><span class="style2">Stack Info...</span><span class="style1">" from the Objects menu and click on "</span><span class="style2">Script...</span><span class="style1">"  Look for the words "merryxmas" or "merry2xmas" near the bottom of the script or use the Find function in the script editor.If you find the word </span><span class="style4">merryxmas</span><span class="style1">  or </span><span class="style4">merry2xmas</span><span class="style1">  you either have:a)  the virusb)  the innoculation script(s)c)  a coincidental situation where      merryxmas means nothing (unlikely)</span><span class="style2">MERRYXMAS STRUCTURE</span><span class="style1">Both strains of the virus begin with the line "on openbackground --merryxmas (or merry2xmas)" and usually contains 36 lines of script.  Several mutations have occurred due to people not realizing they have the virus and then typing in their own scripts following the virus.  The virus responds by added the new script to the original virus and then re-infecting.  This means that countless mutations of the merryxmas virus may be floating aroundIf an old innoculation is found with the new merry2xmas virus, both will be deleted upon request.  It is best to delete the entire questionable script than to have an old, and useless, innoculation in your stack.  If you wish to innoculate you stack against both strains of the merryxmas virus, see the innoculation script below.*Thanks to Bill Swagerty for updates. </span><span class="style2">INNOCULATION SCRIPT</span><span class="style1">The new innoculation script that protects against infection from either strain of the merryxmas virus is:--on idle --merryxmas--on openbackground --merryxmas--on closebackground --merryxmas--on idle --merry2xmas--on openbackground --merry2xmas--on closebackground --merry2xmasThe innoculation must be placed in the stack script editor, preferrably at the bottom, of each stack you wish to innoculate.  Start by manually placing the innoculation script at the bottom of your Home stack script.  Then innoculate other stacks on your hard drive.</span><span class="style2"></span><span class="style1">However - </span><span class="style2">I DO NOT RECOMMEND USING INNOCULATIONS IN ALL STACKS.</span><span class="style1">  The innoculation scripts will be detected as viruses by some commercial programs.  I only recommend installing the innoculation script into your Home stack to protect it from infections (also stops the duplication of the virus in other stacks on your hard drive).  The new innoculation script is automatically installed with the watcher script (click on </span><span class="style2">Install</span><span class="style1"> for more information) when you install.After installing the watcher script, you will be told if questionable scripts are the virus or an innoculation.</span></text>
  336.     </content>
  337.     <content>
  338.         <layer>card</layer>
  339.         <id>3</id>
  340.         <text><span class="style1">             </span><span class="style3">Version 2.0 Changes</span><span class="style1">Several changes have occured since the creation of merryxmasWatcher 1.0:*Color Buttons and Picture*Update on SAM, Virex, and other virus   detection errors*Helpul hints for working with locked   stacks, disks, and protected stacks*Error messages for locked stacks*Scanning and disinfecting HyperCard   Player.*Scan and watcher scripts for detecting  the new "merry2xmas" script*Scans that recognize the difference  between a virus and the innoculation  scripts.*Compaction script to avoid corruption!</span><span class="style2">Picture Buttons</span><span class="style1">Hopefully the picture buttons are more enjoyable than the originals from version 1.0!I've included card buttons as disclaimers for the picture not loading.</span><span class="style2">Update on SAM/Virex, & Others</span><span class="style1">Some virus protection software, such as SAM and Virex scan the data forks of HyperCard stacks.  Even if the merryxmas virus has been removed from the script of a stack, rendered inactive, it will remain in the data fork of the stack.  It can do no harm there, but may be detected as a "virus" by some virus protection programs.  To get rid of false detections, try use the disinfecting software from your virus protection software to update the data fork of your stack(s).  Finally, not all programs distinguish between the virus and the innoculations.  This stack will tell you the difference between the virus and the innoculation scripts.*Thanks to Jacque Gay and Lee Gummerman for their information.</span><span class="style2">Working With Locked Stacks & Disks</span><span class="style1">If you have locked your stacks or disk, you may experience problems using this stack.  Locked stacks can't be changed, can't be updated, can't be innoculated, etc.  Anything on a locked disk experience the same thing.  If you experience problems with this stack, quit HyperCard and unlock the appropriate stacks or disk.Stacks that are protected from modification (File:  Protect Stack...) can't have the merryxmasWatcher 2.0 script installed, or their scripts modified, unless they are deprotected first!For this reason, </span><span class="style2">don't lock this stack or your disk! </span><span class="style1"> Just keep a backup copy of the stack in your archives.  It is likely that this stack will become infecting during the installation process, if you have the virus.  But remember that this stack disinfects itself when scanned or after installation of the watcher. *Many thanks to Diane Schwartz and Bill Swagerty for the update.</span><span class="style2">can'tModify Error Messages</span><span class="style1">If a stack has been locked, a message like "Can't modify this stack." may occur, interferring with the erradication of the merryxmas virus.  In version 1.0, the error would result in the erradication process failing, with no help for dealing with the problem.  This version will check to see if a stack is locked.  If a stack or disk is locked, you will be asked to unlock it, via the finder, and scan the stack again.*Many heartfelt thanks to Jacque Gay for the insight regarding this script error and suggestions towards fixing the problem. </span><span class="style2">HyperCard Player Protection</span><span class="style1">Yes, even HyperCard Player Home stack can get infected with the virus.  Sadly, it's not easy for you to change the script of the Player Home stack since you aren't allowed to script in HyperCard Player.  This stack will disinfect and scan HyperCard stacks or HyperCard Player stacks.</span><span class="style2">merryxmas & merry2xmas viruses</span><span class="style1">The merryxmas virus may be replicated in several forms.  So far, the only two common forms are merryxmas and merry2xmas.*Thanks to Bill Swagerty for this update.  </span><span class="style2">Scanning for the virus & innoculations</span><span class="style1">If you have a stack with an innoculation script, you will be notified.  If you aren't sure the stack in question contains an innoculation, you can check the script out manually.  I don't recommend using innoculation scripts, except in the Home stack.  If you create an innoculation script in stacks that you use on a variety of machines, or distribute on the internet, false virus detections may result.  Remember that SAM and Virex both detect the virus and the innoculation as infections! If you make use of the watcher script, your Home stack will be innoculated and your stacks should be protected without the need for an innoculation in your stack script.</span><span class="style2">Compaction Script</span><span class="style1">When a stack is closed the freesize of the stack is checked to see if it warrents compacting.  If you have a lot of free space, 100 K or greater, you will be asked if you want to compact your stack.  Compacting your stack often is a good idea since large amounts of free space can result in corruption of your stack!</span><span class="style2">This Stack:</span><span class="style1">a)  Kills off any merryxmas strain that      might be in your Home stack.b)  Innoculates your Home stack from      further infection.c)  Installs a watcher script that scans      all used stacks for the viruses.  It      notifies you and eradicates any      existing virus when you close stacks.     It also notifies you of a need for     compaction and gives you the option to     compact stacks with 100 K or more free     space.d)  Enables you to scan individual stacks.</span></text>
  341.     </content>
  342.     <content>
  343.         <layer>card</layer>
  344.         <id>4</id>
  345.         <text><span class="style1">                     </span><span class="style3">Scan Stack</span><span class="style1"></span><span class="style2">Hold down the shift key and click on "Scan Stack" to scan a stack.</span><span class="style1">  If nothing happens, an unlikely error, type "scan" (without quotes) into the message box and press return.This stack automatically cleans itself from the virus each time you install the watcher script into your Home stack.  However, it is still a good idea to scan this stack every now and then to make sure everything is working OK.When you scan a stack, the status of that stack will be given to you.  Stacks with a questionable infections are looked into more thoroughly, to determine the difference between a virus or innoculations scripts.If a stack contains questionable scripts, you will be given the following options:1.   </span><span class="style2">Ignore the Warning</span><span class="style1">      You may choose to ignore the warning if      you know that the stack has an       innoculation or non-virus script that is      setting off a false detection.2.   </span><span class="style2">Check it Out Manually</span><span class="style1">      If you choose to check out a script       manually, you'll be allowed to edit the       script of the stack in question.  Simply       scroll to the bottom of the script and       look for the word "merryxmas" or use the       Find command.  Make sure to read the       "</span><span class="style2">Explained</span><span class="style1">" section to learn how to       recognize the virus versus the       innoculation script.            </span><span class="style2">Warning</span><span class="style1"> - You may not be able to check      out the scripts of stacks with low user      levels (below 4) or protection such as      cantModify.  If you run into such a       problem, change the user level to 5 and       deprotect the stack to check out the       script of the stack - If you can't, write to      me and I'll tell you how to view stacks       that are protected.  See the "</span><span class="style2">Changes</span><span class="style1">"       section for more information.3.   </span><span class="style2">Remove the Virus (Automatically)</span><span class="style1">      You have two choices when deleting the      virus:  Delete the entire stack script of      the stack in question, or delete the script      from the virus down.        I recommend only using "</span><span class="style2">VIRUS DOWN</span><span class="style1">",      to avoid deleting necessary stack script.      *For example, if you were to delete all the      script from this stack, you would end      up damaging the functionality of the       stack.  However, beginners may not have      any stack script and may choose to delete      everything in question.      "</span><span class="style2">Virus Down</span><span class="style1">" option scans the script in       question and searches it line by line.        When the line in question is located, the       script will be deleted from that point on.        Since the virus always attaches at the       end of the script, your original stack       script (if any), should be saved.      </span><span class="style2">Warning</span><span class="style1"> - Removing the virus       automatically may result in the deletion       of your stack script.  Only use the       automatic feature if you have a backup       and aren't comforatable deleting the       script manually (see Check It Out      Manually above).  Also, if you have any       script containing the words merryxmas      or merry2xmas, all script from that point      on will be deleted.  However, it is      unlikely that you will have any script      with similar names.***********************************To avoid problems, all scripts include disclaimers.  Even after deleting the script of a stack, you'll be given the opportunity to view the stack script and revert if you don't like the results.  I'm hopeful that the watcher script is very </span><span class="style2">user-friendly</span><span class="style1">.***********************************For Techies, the scanning script is in the script editor of this field.  Do not modify it!</span></text>
  346.     </content>
  347.     <content>
  348.         <layer>card</layer>
  349.         <id>5</id>
  350.         <text><span class="style1">                           </span><span class="style3">Install</span><span class="style1"></span><span class="style2">Hold down the shift key and click on "Install" to install the merryxmasWatcher script into your Home stack.  </span><span class="style1">If nothing happens, an unlikely error, type "install" (without quotes) into the message box and press return.</span><span class="style2">Protection Errors</span><span class="style1">If you stack is locked or protected, the watcher script will not be installed.  To unlock a stack go to the finder, click on the stack, and select "</span><span class="style2">Get Info...</span><span class="style1">" from the File menu.  Then unlock the stack in the lower left corner.You may wish to temporarily disable any protection you have to install the merryxmasWatcher 2.0 script.  Then protect your Home stack again after installation.  *Restarting your computer with the shift key held down will turn the extensions off.Installation takes around 1-3 minutes, depending upon the machines you are using.*Thanks to Jacque Gay.</span><span class="style2">Installing Will Result In:</span><span class="style1">1.  </span><span class="style2">A Scan of the Home Stack</span><span class="style1">     If your stack has anything related to the     virus, it will be updated by deleting the     script from the first detected line to the     end of the script.  Make sure you have a      </span><span class="style2">backup</span><span class="style1"> of your </span><span class="style2">Home stack</span><span class="style1"> before      installing.  I include this warning as      common sense, even though I have had no      reports of any problems with the      installation.2.  </span><span class="style2">Install the Watcher Script</span><span class="style1">          The watcher script contains an       innoculation against the merryxmas and       merry2xmas viruses.  It also contains a       rather lengthy script for informing you of      any stacks that may be infected, as you       close them.  If a stack is in question, you       can ignore the warning, check it out       manually, or delete the questionable       script automatically.        After installing the watcher script, you      can go about your business as usual.       However, you may end up fixing up a lot      of stacks before you get rid of the virus      in all of the stacks on your hard drive.             I recommend that you use merryxmas      Vaccine, by Bill Swagerty, to get rid of      the virus from the stacks on your hard       drive, and then install the watcher script.            Read the </span><span class="style2">Scan Stack</span><span class="style1"> section for more       information on this topic.For Techies, the watcher script is in the script editor of this field.  Do not modify it, as it is used during the installation process.</span></text>
  351.     </content>
  352.     <name></name>
  353.     <script></script>
  354. </card>
  355.  
  356.  
  357.